package com.artpri.service;

import java.util.List;

import com.artpri.model.CollectShopkeeper;
import com.artpri.model.vo.SimpleGoods;

/**
 * 商品收藏 -service
 * 
 * @author ZhangSi
 */
public interface AttentionCenterService {

	public enum AttentionType {
		GOODS, STORE, ACTIVITY;
	}
	
	/**
	 * 添加商品收藏
	 * 
	 * @param userNum
	 * @param goodsNum
	 * @param collectName
	 * @param picUrl
	 * @return 已存在返回 1, 保存成功返回 2
	 */
	Integer addGoodsCollect(int userNum, Integer goodsNum, String collectName, String picUrl);

	/**
	 * 取消商品关注
	 * @param cid
	 */
	void deleteGoodsCollect(Integer cid);

	/**
	 * 取消商品关注
	 * @param ids
	 */
	void deleteGoodsCollect(List<Integer> ids);


	/**
	 * 商品关注
	 * <ul>
	 * <li>id           商品收藏id
	 * <li>userNum      用户编码
	 * <li>userName     null
	 * <li>goodsNum    	商品编码
	 * <li>goodsName    商品标题
	 * <li>goodsPrice   商品价格
	 * <li>goodsLeave   null
	 * <li>goodsAddTime 商品收藏时间
	 * <li>gaId         商品主图id
	 * <li>mainpic      商品主图url
	 * </ul> 
	 * @param userNum
	 * @return
	 */
	List<SimpleGoods> listGoodsCollect(Integer userNum);
	/**
	 * 商品关注
	 * <ul>
	 * <li>id           商品收藏id
	 * <li>userNum      用户编码
	 * <li>userName     null
	 * <li>goodsNum    	商品编码
	 * <li>goodsName    商品标题
	 * <li>goodsPrice   商品价格
	 * <li>goodsLeave   null
	 * <li>goodsAddTime 商品收藏时间
	 * <li>gaId         商品主图id
	 * <li>mainpic      商品主图url
	 * </ul> 
	 * @param userNum
	 * @return
	 */
	List<SimpleGoods> listGoodsCollectByPage(Integer userNum, int pageNo, int pageSize);

	/**
	 * 关注的店铺列表
	 * @param userNum
	 * @return
	 */
	List<CollectShopkeeper> listStoreCollect(Integer userNum);
	List<CollectShopkeeper> listStoreCollectByPage(Integer userNum, int pageNo, int pageSize);
	
	/**
	 * 取消关注的店铺
	 * @param ids
	 */
	void cancelCollectStore(List<Integer> ids);
	
	int getResultCount(AttentionType type, Integer userNum);

}
